﻿/**
 *
 * Grid de movimientos
 *
 * @author Javier Caride Ulloa
 * @copyright (c) 2010, by Javier Caride Ulloa
 * @date April 26th, 2010
 * @version $Id:$
 *
 * @license BookGrid.ui.js is licensed under the terms of the Open Source GPL 3.0 license.
 *
 * License details: http://www.gnu.org/licenses/gpl.html
 */
BookGridUi = Ext.extend(Ext.grid.GridPanel, {
	border: false,
	initComponent: function() {
		/*
		 * Definimos el registro para un movimiento
		 */
		var movimientoRecord = new Ext.data.Record.create([
			{name: 'id', type: 'int'},
			{name: 'importe', type: 'float'},
			{name: 'categoria', type:'text'},
			{name: 'subcategoria', type:'text'},
			{name: 'fecha', type: 'date', dateFormat: 'Y-m-d'},
			{name: 'descripcion', type:'text'},
		]);

		/*
		 * Creamos el reader para el Grid de movimientos
		 */
		var movimientosGridReader = new Ext.data.JsonReader({
			root: 'data',
			totalProperty: 'total',
			id: 'mov_id'},
			movimientoRecord
		);

		/*
		 * Creamos el DataProxy para carga remota de los datos
		 */
		var movimientosDataProxy = new Ext.data.HttpProxy({
			url: '/listado/movimientos',
			method: 'POST'
		});

		/*
		 * Creamos el reader para el formulario de alta/modificación de movimientos
		 */
		var movimientosFormReader = new Ext.data.JsonReader({
			root : 'data',
			successProperty : 'success',
			totalProperty: 'total',
			id: 'id'
			},movimientoRecord
		);
		
		this.id = 'mov-movimientos-grid';
		
        this.store = new Ext.data.Store({
			id: 'movimientosDS',
			proxy: movimientosDataProxy,
			reader: movimientosGridReader
		});
		
        this.cm = new Ext.grid.ColumnModel(
			[{
				header: 'Fecha',
				dataIndex: 'fecha',
				width: 80,
				renderer: Ext.util.Format.dateRenderer('d/m/Y')
			},{
				header: 'Importe',
				dataIndex: 'importe',
				width: 90
			},{
				header: 'Categoría',
				dataIndex: 'categoria',
				width: 90
			},{
				header: 'Subcategoria',
				dataIndex: 'subcategoria',
				width: 90
			},{
				header: 'Descripción',
				dataIndex: 'descripcion',
				width: 90
			}]
		);
        this.enableColLock = false;
        this.width = 750;
        this.height = 550;
        this.bbar = new Ext.PagingToolbar({
            pageSize : 20,
            store : this.store,
            displayInfo : true
        });
        this.selModel = new Ext.grid.RowSelectionModel({singleSelect : false});
		
		BookGridUi.superclass.initComponent.call(this);
	},
	onRender : function() {
		this.store.load({params: {start:0,limit:20}});
        BookGridUi.superclass.onRender.apply(this, arguments);
	}
});

Ext.override(BookGridUi, {
	doFilterGrid : function(start, end) {
		this.store.baseParams = {
			dateStart: start,
			dateEnd: end
		};
		this.store.load({params: {start:0,limit:20}});
	},
	doReloadGrid : function() {
		this.store.baseParams = {
			dateStart: '',
			dateEnd: ''
		};
		this.store.load({params: {start:0,limit:20}});
	}
});